package com.ylxn.codeTop;

import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;

/**
 * @author cenghaile
 * @version 1.0.0
 * @titel TwoSearch
 * @description 704. 二分查找 https://leetcode.cn/problems/binary-search/
 * @crete 2023/6/5 09:04
 */
public class TwoSearch {

    /**
     * 给定一个 n 个元素有序的（升序）整型数组 nums 和一个目标值 target ，
     * 写一个函数搜索 nums 中的 target，如果目标值存在返回下标，否则返回 -1。
     *
     * @param nums
     * @param target
     * @return
     */
    public int search(int[] nums, int target) {
        if (nums.length < 1) {
            return -1;
        }
        int left = 0;
        int right = nums.length;
        int mid = (left + right) / 2;
        int midNum = nums[(left + right) / 2];
        while (left < right) {
            if (midNum == target) {
                return (left + right) / 2;
            } else if (midNum > target) {
                right = mid - 1;
            } else {
                left = mid + 1;
            }
        }
        return -1;
    }
}
